#ifndef QLSPLUGINWIDGET_H
#define QLSPLUGINWIDGET_H

#include <QPaintEvent>
#include <QResizeEvent>

#include <QWidget>

#include "dllQLsPluginsManagerAppfwk_global.h"
#include "../../DevBase/dllQLsPluginsManager/qlspluginsmanagerpool.h"

namespace Ui {
class DLLQLSPLUGINSMANAGERAPPFWK_EXPORT QlsPluginWidget;
}

class DLLQLSPLUGINSMANAGERAPPFWK_EXPORT QlsPluginWidget : public QWidget
{
	Q_OBJECT

public:
	explicit QlsPluginWidget(QWidget *parent = nullptr);
	~QlsPluginWidget();

	/* 获取插件信息 */
	PluginInfo pluginInfo() const;
	/* 设置插件信息 */
	void setPluginInfo(const PluginInfo &pluginInfo);

signals:
	/* 加载插件的信号 */
	void sigLoad(PluginInfo&);

protected:
	/* 绘图事件重载 */
	void paintEvent(QPaintEvent *event);
	/* 尺寸变化事件重载 */
	void resizeEvent(QResizeEvent *event);

private:
	/* 根据尺寸修改插件信息标签显示内容 */
	void ChangeInformationLabelTextBySize();

private slots:
	/* 加载 */
	void on_loadBtn_clicked();

private:
	Ui::QlsPluginWidget *ui;

	PluginInfo m_pluginInfo;			/* 插件信息 */
};

#endif // QLSPLUGINWIDGET_H
